home *** CD-ROM | disk | FTP | other *** search
Wrap
<%@ Language=VBScript CODEPAGE=65001 %> <% option explicit %> <!--#include file="include/wmsConstants.inc"--> <!--#include file="include/wmsLocStrings.inc"--> <!--#include file="include/wmsCommon.inc"--> <!--#include file="include/wmsServerHash.inc"--> <!--#include file="include/wmsconnect.inc"--> <!--#include file="include/wmsHeader.inc"--> <!--#include file="include/wmsRefresh.inc"--> <% '+------------------------------------------------------------------------- ' ' Microsoft Windows Media ' Copyright (C) Microsoft Corporation. All rights reserved. ' ' File: TreeView.asp ' ' Contents: ' '-------------------------------------------------------------------------- on error resume next Dim i Dim objPP Dim dwNumPP Dim strServerName Dim strPPName Dim strPPID Dim strAltText Dim strConvertedPPName Dim dwPPType Dim dwPPStatus Dim bPush Dim bBroadcast Dim bStarted Dim bStreamEnded Dim bAllowingConnections Dim bInError Dim bCacheEnabled Dim dwTabIndex Dim objPluginCollection Dim objEachPlugin Dim dwPluginCount Dim dwProductType Dim bRunningDotNetAdvServer dwTabIndex = 1 bRunningDotNetAdvServer = FALSE ConnectToServer if( WMS_SERVICE_STARTED <> g_dwConnectionFailureCode ) then Response.Redirect( "include/server_stopped.asp?server=" & qs("server") ) elseif( empty = g_objServer ) then if( 0 = Len( qs( "redir" ) ) ) then ' avoid infinite loop Response.Redirect( "treeview.asp?server=" & g_strQueryStringServer & "&redir=true" ) end if end if strServerName = g_objServer.Name Response.Expires = -10000 on error resume next dwProductType = g_objServer.OSProductType if( 0 <> err.number ) then bRunningDotNetAdvServer = FALSE err.Clear else bRunningDotNetAdvServer = CBool( WMS_OS_PRODUCT_ADVANCED and dwProductType ) end if on error resume next ' Connect to the proxy plug-in, if it exists, and determine if it's enabled set objPluginCollection = g_objServer.CacheProxy if( FALSE = IsEmpty( objPluginCollection ) ) then dwPluginCount = objPluginCollection.Count else dwPluginCount = 0 end if bCacheEnabled = FALSE if( 0 < dwPluginCount ) then For i = 0 to dwPluginCount - 1 Set objEachPlugin = objPluginCollection(i) if( 0 <> ( WMS_PLUGIN_ENABLED and objEachPlugin.status ) ) then bCacheEnabled = TRUE Exit For end if next end if '//////////////////////////////////////////////////////////////// Function FormatStatusString( strPPName, strPPStatus ) Dim strFirstReplacement strFirstReplacement = Replace( L_PPPSTATTEMPL_TEXT, "_P_", Server.HTMLEncode( trim( strPPName ) ), 1 ) FormatStatusString = Replace( strFirstReplacement, "_S_", Server.HTMLEncode( trim( strPPStatus ) ), 1 ) End Function '//////////////////////////////////////////////////////////////// Function InsertPPName( strPPName, strTemplate ) InsertPPName = Replace( strTemplate, "___", "'" & trim( strPPName ) & "'", 1 ) End Function '//////////////////////////////////////////////////////////////// Function BcastPPStartedStreamEnded( byRef objPP ) BcastPPStartedStreamEnded = FALSE ' ' Too heavy-handed on the server. Don't do this until the server implements a new bcast objPP status flag! ' Exit Function Dim objSharedPlaylist Dim objCurrentEntry Dim objActiveMedia Dim strNowPlaying Dim enumFileType Dim strPPPath err.clear on error resume next strPPPath = objPP.path if( ( 0 = StrComp( strPPPath.Left( 6 ), "mcast:" ) ) or _ ( 0 = StrComp( strPPPath.Right( 4 ), ".nsc" ) ) ) then enumFileType = WMS_FILE_STREAM_FORMAT else enumFileType = g_objServer.FileType( strPPPath ) end if if( ( 0 = err.Number ) and ( WMS_FILE_DIRECTORY = enumFileType ) or ( WMS_FILE_PLAYLIST = enumFileType ) )then Set objSharedPlaylist = objPP.SharedPlaylist if( IsEmpty( objSharedPlaylist ) or ( 0 <> err.number ) )then BcastPPStartedStreamEnded = TRUE else Set objCurrentEntry = objSharedPlaylist.CurrentPlaylistEntry strRuntimeID = objCurrentEntry.GetAttribute( "UniqueRuntimeID" ) if( 0 <> err.number )then BcastPPStartedStreamEnded = TRUE else Set objActiveMedia = objSharedPlaylist.CurrentMediaInformation if( 0 <> err.number )then BcastPPStartedStreamEnded = TRUE else strNowPlaying = objActiveMedia.GetProperty( "WMS_CONTAINER_LOG_PHYSICAL_URL","" ) if( ( 0 <> err.number ) or ( 0 = Len( strNowPlaying ) ) )then BcastPPStartedStreamEnded = TRUE end if end if end if end if end if err.clear objSharedPlaylist = nothing objCurrentEntry = nothing objActiveMedia = nothing strNowPlaying = nothing End Function '//////////////////////////////////////////////////////////////// Function AtLeastOneError() AtLeastOneError = FALSE Dim dwNumMessages Dim dwNumMessagesDisplayed Dim objDiag Dim objMessage Dim msgType set objDiag = g_objServer.DiagnosticEvents dwNumMessages = objDiag.Count i = 0 dwNumMessagesDisplayed = 0 i = 0 While ( i < dwNumMessages ) i = i + 1 set objMessage = objDiag.Item( i - 1 ) msgType = objMessage.Type if ( ( WMS_DIAGNOSTIC_EVENT_PLUGIN_EVENT_LOG_ERROR = msgType ) or _ ( WMS_DIAGNOSTIC_EVENT_SERVER_EVENT_LOG_ERROR = msgType ) ) then AtLeastOneError = TRUE Exit Function end if Wend End Function '//////////////////////////////////////////////////////////////// Sub SelectIcon( bBroadcast, bIsPush, bStarted, bStreamEnded, bAllowingConnections, bInError ) if( bBroadcast ) then if( bIsPush ) then if( bStarted and not bAllowingConnections ) then Response.Write( "img/BroadcastPushDeny_16.gif" ) elseif( bInError ) then Response.Write( "img/BroadcastPushCritical_16.gif" ) else if( bAllowingConnections ) then if( bStreamEnded ) then Response.Write( "img/BroadcastPushStreamEnd_16.gif" ) elseif( bStarted ) then Response.Write( "img/broadcast_push16.gif" ) else Response.Write( "img/BroadcastPushStop_16.gif" ) end if else Response.Write( "img/BroadcastPushDeny_16.gif" ) end if end if else if( TRUE = bInError ) then Response.Write( "img/broadcast_error16.gif" ) elseif( ( TRUE = bStarted ) and ( FALSE = bAllowingConnections ) ) then Response.Write( "img/broadcast_deny16.gif" ) else if( bStreamEnded ) then Response.Write( "img/broadcast_streamended_16.gif" ) elseif( bStarted ) then Response.Write( "img/broadcast_icon16.gif" ) else Response.Write( "img/broadcast_stop16.gif" ) end if end if end if else if( bInError ) then Response.Write( "img/ondemand_error16.gif" ) elseif( FALSE = bAllowingConnections ) then Response.Write( "img/ondemand_deny16.gif" ) else Response.Write( "img/ondemand_icon16.gif" ) end if end if End Sub WriteHTMLHeader( g_strDecodedServerName ) WriteRefreshMetaTag %> <link rel="stylesheet" type="text/css" href="<%= Session( "cssName" ) %>"> <script language="JavaScript"> <!-- /*@cc_on @*/ var g_bInitialized = false; var g_strLastElement = new String(""); <% if brMSIE = g_dwBrowserType then %> var g_bMutexInUse = false; ////////////////////////////////////////////////// function Initialized() { return( g_bInitialized ); } ////////////////////////////////////////////////// function SetInitialized() { <% jsTRY %> g_bInitialized=true; <% if brMSIE = g_dwBrowserType then %> var framesetHeader; framesetHeader = window.parent.parent.parent; if( framesetHeader ) { framesetHeader.SetTreeReady(); } <% end if %> <% jsCATCH %> } ////////////////////////////////////////////////// function RequestHilight() { <% jsTRY %> if( g_bMutexInUse ) { window.setTimeout( "RequestHilight();", 400, "JavaScript" ); } var childFrame; childFrame = window.parent.parent.frames[ "frameDetails" ]; if( childFrame ) { if( childFrame.HilightCurrentNode ) { childFrame.HilightCurrentNode(); } else { if( childFrame.UpdateTreeViewSelection ) { childFrame.UpdateTreeViewSelection(); } } } <% jsCATCH %> } ////////////////////////////////////////////////// function ResetAllEntries() { <% jsTRY %> if( g_bMutexInUse ) { return; } g_bMutexInUse = true; if( 0 < g_strLastElement.length ) { document.all[ g_strLastElement ].style.color = "#6699FF"; document.all[ g_strLastElement ].style.backgroundColor = "#FFFFFF"; } g_bMutexInUse = false; <% jsCATCH %> } ////////////////////////////////////////////////// function SetSelectedNode( szNodeName ) { <% jsTRY %> if( g_bMutexInUse ) { window.setTimeout( "SetSelectedNode( \"" + szNodeName + "\" );", 500, "JavaScript" ); return; } if( ! g_bInitialized ) { var szCall = new String( "SetSelectedNode( \"" ); szCall += szNodeName szCall += "\");"; setTimeout( szCall, 1000, "JavaScript" ); } ResetAllEntries(); var theLabel; var theImage; g_bMutexInUse = true; theLabel = document.all[ szNodeName ]; if( theLabel ) { theLabel.style.color="#FFFFFF"; theLabel.style.backgroundColor="navy"; } g_strLastElement = szNodeName; g_bMutexInUse = false; <% jsCATCH %> } <% end if %> --> </script> </head> <body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" bottommargin="0" rightmargin="0" marginwidth="0" marginheight="0" <% if brMSIE = g_dwBrowserType then %>onLoad="JavaScript:SetInitialized();RequestHilight();"<% end if %> oncontextmenu="JavaScript:event.cancelBubble=true;return false;"> <table height="100%" width="100%" height="100%" border="0" bgcolor="#FFFFFF" cellpadding="0" cellspacing="0" hspace="0" vspace="0" cols="1" rows="<% if FALSE = g_bSecureConnection then %>5<% else %>4<%end if %>"> <tr valign="top" align="top" width="100%" height="98%" bgcolor="#FFFFFF"> <td valign="top" bgcolor="#FFFFFF"> <img src="pages/img/spacer_.gif" height="3" width="4"> <table valign="top" border="0" cellpadding="0" cellspacing="0" hspace="0" vspace="0" style="position:absolute;top:3;left:4" bgcolor="#FFFFFF" bgcolor="#000000"> <tr valign="top" bgcolor="#FFFFFF"> <td align="left" valign="top" colspan="3" bgcolor="#FFFFFF"> <table border="0" class="treeview" cellspacing="0" cellpadding="0" bgcolor="#FFFFFF"> <tr> <td width="16" align="left"> <a name="server_" href="pages/server_status.asp?server=<%= g_strQueryStringServer %>" target="frameDetails"><% Dim strServerIconName Dim dwServerStatus dwServerStatus = g_objServer.Status strServerIconName = "server_icon16.gif" if( WMS_SERVER_ERROR_CRITICAL = dwServerStatus )then strServerIconName = "server_error16.gif" elseif FALSE = g_objServer.AllowClientsToConnect then strServerIconName = "server_deny16.gif" end if %><img src="img/<%= strServerIconName %>" border="0" alt="<%= Server.HTMLEncode( L_CONFIGSERVER_TEXT ) %>" title="<%= Server.HTMLEncode( L_CONFIGSERVER_TEXT ) %>"></a> </td> <td align="left" width="4"> <img src="pages/img/spacer_.gif" height="1" width="4"> </td> <td width="16" colspan="3" align="left"> <div class="treeview" nowrap> <a <% if brMSIE = g_dwBrowserType then %>tabindex="<%= dwTabIndex %>" <% dwTabIndex = dwTabIndex + 1 %> <% end if %> title="<%= SpacesToNonbreak( DashesToNonbreak( Server.HTMLEncode( strServerName ) ) ) %>" name="server" href="pages/server_status.asp?server=<%= g_strQueryStringServer %>" target="frameDetails"> <% 'work around an ie6 bug that would have a server name containing dashes broken into multiple lines Response.Write( SpacesToNonbreak( DashesToNonbreak( Server.HTMLEncode( strServerName ) ) ) ) %> </a> </div> </td> <td align="right" width="100%"> </td> </tr> </table> </td> </tr> <tr> <td align="left" valign="top" colspan="3"> <table class="treeview" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="16"> <img src="pages/img/spacer_.gif" height="1" width="16"> </td> <td width="16" nowrap> <a name="diag_" href="pages/server_diag.asp?server=<%= g_strQueryStringServer %>" target="frameDetails"><% %><img src="img/trouble<% if AtLeastOneError() then %>Checked<% end if %>_icon16.gif" border="0" height="16" width="16" alt="<%= Server.HTMLEncode( L_DIAGNOSTICNODETITLE_TEXT ) %>" title="<%= Server.HTMLEncode( L_DIAGNOSTICNODETITLE_TEXT ) %>"></a> </td> <td align="left" width="4"> <img src="pages/img/spacer_.gif" height="1" width="4"> </td> <td width="16" colspan="2" nowrap> <div class="treeview" nowrap> <a <% if brMSIE = g_dwBrowserType then %>tabindex="<%= dwTabIndex %>" <% dwTabIndex = dwTabIndex + 1 %> <% end if %>title="<%= SpacesToNonbreak( Server.HTMLEncode( L_DIAGNOSTICNODETITLE_TEXT ) ) %>" name="diag" href="pages/server_diag.asp?server=<%= g_strQueryStringServer %>" target="frameDetails"> <% Response.Write( SpacesToNonbreak( Server.HTMLEncode( L_DIAGNOSTICNODETITLE_TEXT ) ) ) %> </a> </div> </td> </tr> </table> </td> </tr> <% if bRunningDotNetAdvServer then %> <tr> <td align="left" valign="top" colspan="3" nowrap> <table class="treeview" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="16"> <img src="pages/img/spacer_.gif" height="1" width="16"> </td> <td width="16" nowrap> <a name="cache_" href="pages/cache_getstarted.asp?server=<%= g_strQueryStringServer %>" target="frameDetails"><% %><img src="img/cacheproxy16.gif" border="0" height="16" width="16" alt="<%= Server.HTMLEncode( L_CACHEPXMGMT_TEXT ) %>" title="<%= Server.HTMLEncode( L_CACHEPXMGMT_TEXT ) %>"></a> </td> <td align="left" width="4"> <img src="pages/img/spacer_.gif" height="1" width="4"> </td> <td width="16" colspan="2" nowrap> <div class="treeview" nowrap> <a <% if brMSIE = g_dwBrowserType then %>tabindex="<%= dwTabIndex %>" <% dwTabIndex = dwTabIndex + 1 %> <% end if %> nowrap title="<%= SpacesToNonbreak( Server.HTMLEncode( L_CACHEPXMGMT_TEXT ) )%>" name="cache" href="pages/cache_getstarted.asp?server=<%= g_strQueryStringServer %>" target="frameDetails"> <% Response.Write( SpacesToNonbreak( Server.HTMLEncode( L_CACHEPXMGMT_TEXT ) ) ) %> </a> </div> </td> </tr> </table> </td> </tr> <% if bCacheEnabled then '******************************* begin cache / proxy ******************************* dwNumPP = g_objServer.PublishingPoints.Count i = 0 for i = 0 to dwNumPP - 1 set objPP = g_objServer.PublishingPoints.Item( i ) dwPPType = objPP.Type if( WMS_PUBLISHING_POINT_TYPE_CACHE_PROXY_ON_DEMAND = dwPPType ) or ( WMS_PUBLISHING_POINT_TYPE_CACHE_PROXY_BROADCAST = dwPPType ) then strPPName = trim( objPP.Name ) strPPID = objPP.ID strAltText = "" bAllowingConnections = CBool( objPP.AllowClientsToConnect ) if( WMS_PUBLISHING_POINT_TYPE_CACHE_PROXY_ON_DEMAND = dwPPType ) then bStreamEnded = FALSE bStarted = FALSE bInError = CBool( WMS_PUBLISHING_POINT_ERROR_CRITICAL and objPP.Status ) or _ CBool( WMS_PUBLISHING_POINT_ERROR and objPP.Status ) strAltText = InsertPPName( strPPName, L_CACHEPROXYPP_TEXT ) else bStarted = TRUE 'CBool( WMS_BROADCAST_PUBLISHING_POINT_STARTED and objPP.BroadcastStatus ) bInError = CBool( WMS_PUBLISHING_POINT_ERROR_CRITICAL and objPP.Status ) or _ CBool( WMS_PUBLISHING_POINT_ERROR and objPP.Status ) bStreamEnded = FALSE strAltText = InsertPPName( strPPName, L_CACHEPROXYPP_TEXT ) end if %> <tr> <td align="left" valign="top" colspan=4> <table class="treeview" cellspacing="0" cellpadding="0"> <tr> <td width="16"> <img src="pages/img/spacer_.gif" height="1" width="16"> </td> <td width="16"> <img src="pages/img/spacer_.gif" height="1" width="16"> </td> <td width="16" align=top class="defaultcursor" nowrap> <a name="<%= objPP.ID & "_" %>" href="pages/pubpoints/pubpoint_status.asp?server=<%= g_strQueryStringServer %>&ppID=<%= strPPID %>" target="frameDetails" border="0" alt="<%= Server.HTMLEncode( strPPName ) %>"> <img src="<% SelectIcon CBool( WMS_PUBLISHING_POINT_TYPE_CACHE_PROXY_ON_DEMAND <> dwPPType ), FALSE, bStarted, bStreamEnded, bAllowingConnections, bInError %>" border="0" width="16" align=bottom alt="<%= strAltText %>" title="<%= strAltText %>"></a> </td> <td align="left" width="4"> <img src="pages/img/spacer_.gif" height="1" width="4"> </td> <td colspan=1 class="defaultcursor" nowrap> <div class="treeview" nowrap> <a <% if brMSIE = g_dwBrowserType then %>tabindex="<%= dwTabIndex %>" <% dwTabIndex = dwTabIndex + 1 %> <% end if %> name="<%= objPP.ID %>" href="pages/pubpoints/pubpoint_status.asp?server=<%= g_strQueryStringServer %>&ppID=<%= SafeEscape( strPPID ) %>" target="frameDetails" border="0" alt="<%= strAltText %>" title="<%= strAltText %>"> <% Response.Write( SpacesToNonbreak( Server.HTMLEncode( ConvertPPName( strPPName, dwPPType ) ) ) ) %> </a> </div> </td> </tr> </table> </td> </tr> <% end if ' was bcast or od objPP next ' on to next objPP '******************************* end of cache / proxy ******************************* end if 'bCacheEnabled end if ' bRunningDotNetAdvServer %> <tr> <td align="left" valign="top" colspan="3"> <table class="treeview" border="0" cellspacing="0" cellpadding="0" cols="4"> <tr> <td width="16"> <img src="pages/img/spacer_.gif" height="1" width="16"> </td> <td width="16" nowrap> <a title="<%= Server.HTMLEncode( L_PP_TEXT ) %>" name="pubpoints_" href="pages/pubpoints/pubpoint_collection.asp?server=<%= g_strQueryStringServer %>" target="frameDetails"><% %><img src="img/ppt_coll_16.gif" border="0" alt="<%= Server.HTMLEncode( L_CONFIGALLPP_TEXT ) %>" ></a> </td> <td align="left" width="4"> <img src="pages/img/spacer_.gif" height="1" width="4"> </td> <td width="16" colspan="2" nowrap> <div class="treeview" nowrap> <a <% if brMSIE = g_dwBrowserType then %>tabindex="<%= dwTabIndex %>" <% dwTabIndex = dwTabIndex + 1 %> <% end if %> title="<%= SpacesToNonbreak( Server.HTMLEncode( L_PP_TEXT ) ) %>" id="<%= Server.HTMLEncode( L_PP_TEXT ) %>" name="pubpoints" href="pages/pubpoints/pubpoint_collection.asp?server=<%= g_strQueryStringServer %>" target="frameDetails"> <% Response.Write( SpacesToNonbreak( Server.HTMLEncode( L_PP_TEXT ) ) ) %> </a> </div> </td> </tr> </table> </td> </tr> <% dwNumPP = g_objServer.PublishingPoints.Count i = 0 for i = 0 to dwNumPP - 1 Set objPP = g_objServer.PublishingPoints.Item( i ) dwPPType = objPP.Type dwPPStatus = objPP.Status if( WMS_PUBLISHING_POINT_TYPE_ON_DEMAND = dwPPType ) or ( WMS_PUBLISHING_POINT_TYPE_BROADCAST = dwPPType ) then bBroadcast = ( WMS_PUBLISHING_POINT_TYPE_ON_DEMAND <> dwPPType ) strPPName = trim( objPP.Name ) strPPID = objPP.ID bPush = CBool( 0 = strcomp( Left( objPP.Path, 5 ), "push:" ) ) bAllowingConnections = CBool( objPP.AllowClientsToConnect ) if( WMS_PUBLISHING_POINT_TYPE_ON_DEMAND = dwPPType ) then bStarted = FALSE bStreamEnded = FALSE bInError = CBool( WMS_PUBLISHING_POINT_ERROR_CRITICAL and objPP.Status ) or _ CBool( WMS_PUBLISHING_POINT_ERROR and objPP.Status ) else bStarted = CBool( WMS_BROADCAST_PUBLISHING_POINT_STARTED and objPP.BroadcastStatus ) bInError = CBool( WMS_PUBLISHING_POINT_ERROR_CRITICAL and objPP.Status ) or _ CBool( WMS_PUBLISHING_POINT_ERROR and objPP.Status ) if( bStarted and bAllowingConnections and not bInError) then bStreamEnded = BcastPPStartedStreamEnded( objPP ) end if end if strConvertedPPName = strPPName if( 0 = StrComp( "/", strPPName, vbTextCompare ) ) then strConvertedPPName = L_DEFAULTPPNAME_TEXT end if if( bBroadcast ) then if( bPush ) then strAltText = InsertPPName( strConvertedPPName, L_CONFIGBCPUSHPP_TEXT ) else strAltText = InsertPPName( strConvertedPPName, L_CONFIGBCPP_TEXT ) end if if( bStarted ) then if( FALSE = bAllowingConnections ) then strAltText = FormatStatusString( strAltText, L_STARTEDBUTDENYING_TEXT ) else strAltText = FormatStatusString( strAltText, L_PPISSTARTED_TEXT ) end if else strAltText = FormatStatusString( strAltText, L_PPISSTOPPED_TEXT ) end if else strAltText = InsertPPName( strConvertedPPName, L_CONFIGODPP_TEXT ) if( FALSE = bAllowingConnections ) then strAltText = FormatStatusString( strAltText, L_DENYING_TEXT ) ' else ' strAltText = FormatStatusString( strAltText, L_ALLOWING_TEXT ) end if end if %> <tr> <td align="left" valign="top" colspan=4> <table class="treeview" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="16"> <img src="pages/img/spacer_.gif" height="1" width="16"> </td> <td width="16"> <img src="pages/img/spacer_.gif" height="1" width="16"> </td> <td width="16" align="top" nowrap> <a title="<%= Server.HTMLEncode( strConvertedPPName ) %>" name="<%= objPP.ID & "_" %>" href="pages/pubpoints/pubpoint_status.asp?server=<%= g_strQueryStringServer %>&ppID=<%= SafeEscape( strPPID ) %>" target="frameDetails" border="0" alt="<%= strAltText %>"> <img src="<% SelectIcon bBroadcast, bPush, bStarted, bStreamEnded, bAllowingConnections, bInError %>" border="0" width="16" align=bottom alt="<%= strAltText %>"></a> </td> <td align="left" width="4"> <img src="pages/img/spacer_.gif" height="1" width="4"> </td> <td colspan=1 nowrap> <div class="treeview" nowrap> <a <% if brMSIE = g_dwBrowserType then %>tabindex="<%= dwTabIndex %>" <% dwTabIndex = dwTabIndex + 1 %> <% end if %> name="<%= objPP.ID %>" href="pages/pubpoints/pubpoint_status.asp?server=<%= g_strQueryStringServer %>&ppID=<%= SafeEscape( strPPID ) %>" target="frameDetails" border="0" alt="<%= strAltText %>" title="<%= strAltText %>"> <% %><%= Server.HTMLEncode( strConvertedPPName ) %> </a> </div> </td> </tr> </table> </td> </tr> <% end if ' was bcast or od objPP next ' on to next objPP %> </table> </td> </tr> </table> </body> </html>